/*
    SUSAN® - Sole of Unix Save ANything

   
      Copyright (C) 2011-2016 Skyatlas Co. LTD

   

   
*/

#ifndef BAREOS_SRC_INCLUDE_COMPRESSION_CONTEXT_H_
#define BAREOS_SRC_INCLUDE_COMPRESSION_CONTEXT_H_

/* clang-format off */
struct CompressionContext {
  POOLMEM* deflate_buffer{nullptr}; /**< Buffer used for deflation (compression) */
  POOLMEM* inflate_buffer{nullptr}; /**< Buffer used for inflation (decompression) */
  uint32_t deflate_buffer_size{}; /**< Length of deflation buffer */
  uint32_t inflate_buffer_size{}; /**< Length of inflation buffer */
  struct {
#ifdef HAVE_LIBZ
    void* pZLIB{nullptr}; /**< ZLIB compression session data */
#endif
#ifdef HAVE_LZO
    void* pLZO{nullptr}; /**< LZO compression session data */
#endif
    void* pZFAST{nullptr}; /**< FASTLZ compression session data */
  } workset;
};
/* clang-format on */

#endif  // BAREOS_SRC_INCLUDE_COMPRESSION_CONTEXT_H_
